// Rust 的标准库中有很多使用泛型的枚举，比如 Option<T> 和 Result<T, E>。你也可以定义自己的泛型枚举：

#[allow(dead_code)]
enum MyOption<T> {
    Some(T),
    None,
}

#[test]
fn test_generic_enum(){
    let some_number = MyOption::Some(5);
    let some_string = MyOption::Some("a string");

    match some_number {
        MyOption::Some(value) => println!("Got a number: {}", value),
        MyOption::None => println!("Got nothing"),
    }

    match some_string {
        MyOption::Some(value) => println!("Got a string: {}", value),
        MyOption::None => println!("Got nothing"),
    }
}